<?php

/**
 *  +----------------------------------------------------------------------
 *  | 文件功能：HttpRequest.php：
 *  +----------------------------------------------------------------------
 *  | Copyright (c) 2022~2025 https://www.huihuiv.com All rights reserved. 
 *  +----------------------------------------------------------------------
 *  | Create At: 2025年05月13日 22:27:43
 *  +----------------------------------------------------------------------
 *  | Author: 半壶水 <star@cqshanwen.com>
 *  +----------------------------------------------------------------------
 */

namespace App\Utils;

class HttpRequest
{

    /**
     * 发送GET请求
     *
     * @param string $url
     * @param string $params
     * @return string|boolean|array
     */
    public static function curl_get(string $url, string $params): string|bool|array
    {
        $header = [];
        // 初始化实例
        $curl = curl_init();
        // 设置URL
        curl_setopt($curl, CURLOPT_URL, $url . '?' . $params);
        // 禁用HTTPS证书
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        // 设置获取的信息以文件流的形式返回
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HTTPHEADER, [
            'Content-Type: application/x-www-form-urlencoded'
        ]);
        // 执行命令
        $info = curl_exec($curl);
        // 关闭实例
        curl_close($curl);
        // 返回数据
        return $info;
    }

    /**
     * 发送POST请求
     *
     * @param string $url
     * @param array $data
     * @return string|boolean|object
     */
    public static function curl_post(string $url, array $data): string|bool|object
    {
        // 初始化实例
        $curl = curl_init();
        // 设置URL
        curl_setopt($curl, CURLOPT_URL, $url);
        // 禁用HTTPS证书
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        // 设置文件头的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 1);
        // 设置获取的信息以文件流的形式返回
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        // 设置提交方式为POST
        curl_setopt($curl, CURLOPT_POST, 1);
        // 设置数据
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        // 执行命令
        $info = curl_exec($curl);
        // 关闭实例
        curl_close($curl);
        // 返回数据
        return $info;
    }
}
